/**************************************************** 
 *  Hidden input - returns input but only echoes the 
 *  character c for each input character. Useful
 *  for passwords.    GCW 23/04/04
 ***************************************************/

#ifndef _string_hidden
#define _string_hidden 1
#endif

// Comment out next line for use on all except Iyonix.
#define RO5 ok

hidden_input(c)
{
 local r,buf;
 r = newvector(8);
 buf = @(newstring(64));

 r[1] = 64;     /* length of buffer           */
 r[2] = 32;     /* lowest character accepted  */
 r[3] = 126;    /* highest character accepted */
#ifdef RO5
 r[0] = buf;
 r[4] = c+(1<<30)+(1<<31);  /* echo character and flags  */
 swi("XOS_ReadLine32",r);  /* RO5 only */
#else
 r[0] = buf+(1<<30)+(1<<31); /* naughty in RO5 */
 r[4] = c;    /* echo character */
 swi("XOS_ReadLine",r);
#endif 
 return($(buf));
}
